import axios from "axios";
// import { getToken } from "@/utils/auth.js";

// 创建Ajax实例
const service = axios.create({
    baseURL: import.meta.env.VITE_APP_BASE_API,
    timeout: 1000
})

// 请求拦截器
service.interceptors.request.use(config=>{

    config.headers['Content-Type'] = 'application/json';

    // const token = getToken()
    // if (token){
    //     config.headers['Authorization'] = token;
    // }

    config.headers = config.headers || {};

    return config;
})

//  响应拦截器
service.interceptors.response.use(response=>{

    // console.log(response.data,'响应拦截');
    //  接收到异常响应
    if (response&&response.data){
        // 1.公共错误处理
        // 2.根据响应码具体处理
        switch (response.data.code) {
            case 400:
                response.data.msg = '错误请求';
                break;
            case 401:
                // ElMessageBox.confirm('登录状态已过期，您可以继续留在该页面，或者重新登录', '系统提示',
                //     { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
                //     userStore().logout().then(() => {
                //         location.href = '/index'
                //     })
                // })
                response.data.msg = '登录状态已过期，您可以继续留在该页面，或者重新登录';
                break;
            case 403:
                response.data.msg = '拒绝访问';
                break;
            case 404:
                response.data.msg = '请求失败，找不发到资源';
                break;
            case  405:
                response.data.msg = '请求方法未允许';
                break;
            case 408:
                response.data.msg = '请求超时';
                break;
            case 500:
                response.data.msg = '服务器端出错';
                break;
            case 501:
                response.data.msg = '网络未实现';
                break;
            case 502:
                response.data.msg = '网络错误';
                break;
            case 503:
                response.data.msg = '服务不可用';
                break;
            case 504:
                response.data.msg = '网络超时';
                break;
            case 505:
                response.data.msg = 'http协议版本不支持';
                break;
        }
    }else {
        // 超时处理
        // ElMessage({ message: "请求超时", type: 'error' })
    }

    return response.data;
},error=>{
    //  接收到异常响应
    console.log('err' + error)
    let { message } = error
    if (message == "Network Error") {
        message = "后端接口连接异常"
    } else if (message.includes("timeout")) {
        message = "系统接口请求超时"
    } else if (message.includes("Request failed with status code")) {
        message = "系统接口" + message.substr(message.length - 3) + "异常"
    }
    // ElMessage({ message: message, type: 'error', duration: 5 * 1000 })
    return Promise.reject(error)
})

export default service;